home *** CD-ROM | disk | FTP | other *** search
/ Suzy B Software 2 / Suzy B Software CD-ROM 2 (1994).iso / prntutil / mfprint / mfprint.doc < prev    next >
Text File  |  1995-04-25  |  7KB  |  179 lines

  1. =======================================================================
  2. GMFPRINT.DOCH   December 23, 1986
  3. Pat Warnshuis, Portland (OR) Atari Club
  4. 1-503-246-3724
  5. =======================================================================
  6.  
  7. MFPRINT is a multifile print program and is intended to complement the
  8. PROED program editor by Jerry Cole.  It is most effective when used in
  9. conjunction with a good print spooler.
  10.  
  11. MFPRINT runs as a tos-takes-parameters task, either from the GEM desktop
  12. or from a shell command line.
  13.  
  14. MFPRINT lists the files entered at the TTP prompt in a continuous print
  15. task, inserting formfeeds between the individual file listings.
  16.  
  17. Each page is started with an optional header which lists the time, date,
  18. filename and page number.  The user can turn off paging and headers to
  19. list pre-formatted files.
  20.  
  21. Condensed print can be selected over the default elite print.
  22.  
  23. The left margin and Tabs can be set to any number of spaces.
  24.  
  25. The user can change the switch settings between individual file listings.
  26.  
  27. Individual or all listings can be aborted at any keyboard entry or
  28. anytimethe program is attempting to print a character (whether the
  29. printer is on-line or off-line).
  30.  
  31. USAGE:
  32. ======
  33.  
  34. The files to be printed are entered at the TTP prompt.    Command line
  35. entries can be in either upper or lower case, or mixed.
  36.  
  37. More than one file can be listed at a time with an optional comma
  38. between the filenames:
  39.  
  40.     mfprint mypride.c mypride.h mypride.doc
  41.     mfprint mypride.c,  mypride.h,    mypride.doc
  42.  
  43. Each filename can include wildcards:
  44.  
  45.     mfprint mypride.*, mypride*.c, *.c, b:\pathname\*.h
  46.  
  47. The switches are:
  48.  
  49.        e   elite print       (default)
  50.        c   condensed print (default = elite)
  51.        p   paging OFF       (default = ON)
  52.        h   headers OFF       (default = ON)
  53.        tn  tab on modulus n spaces (default = 8)
  54.        ln  left margin n spaces
  55.  
  56. Switch option strings are preceded by a '-' character.  Spaces are not
  57. allowed between the individual switches.  However, they may be separated
  58. with optonal commas.  Normally, the filenames are followed a single set
  59. of switches which apply to all the files:
  60.  
  61.        mfprint file1 file2  -cht4l20
  62.        mfprint file1 file2  -c,h,t4,l20
  63.  
  64. The switch settings can be changed between files:
  65.  
  66.       mfprint -c,t4 file1 -e,p,h file2
  67.       mfprint file1 file2 -ph file3 -c,l12
  68.  
  69.       In the second example, the switches -cl,12 woud apply to file1
  70.       and file2, while the switches -ph would apply to file3.
  71.  
  72. If an error is made in the command line entry, the program will prompt
  73. for a new entry.  It will keep trying to process the switches or to open
  74. and list a file until either it is successful or the user aborts.
  75.  
  76. If prompted for a new filename, the user can force a directory listing
  77. by typing any wildcard entry:
  78.  
  79.        b:  b:*.c  b:\pathname\    b:fname.*
  80.  
  81.  
  82. The user can abort the program at any keyboard prompt or anytime the
  83. program is listing a file (whether the printer is on or off).  The abort
  84. character is a control_C (selected by tradition and to require an
  85. two-key entry).  The current line will be completed before the listing
  86. is aborted.   If you are using a print spooler and the files have already
  87. been loaded into the spooler's buffer, the spooler must be able to flush
  88. its buffer and abort the listing.
  89.  
  90.  
  91. FEATURES:
  92. =========
  93.  
  94. The default values provide a one-inch margin at the top, bottom, and
  95. left margins.  The right margin is set to the right edge of the page
  96. whether elite or condensed print is invoked.  If a line length exceeds
  97. the right margin, the program will break the line and continue that
  98. line at the left margin.
  99.  
  100. Elite print was selected for the default as it conveniently corresponds
  101. to an 80-column screen.  This works for source listings and for many
  102. documentation files which are pre-formatted to a screen width.    For
  103. assembler output listings, where the assembler adds object code data
  104. to the left of the listing, the user can select condensed print.
  105.  
  106. The user can turn off both program-controlled paging and the listing
  107. of a header at the start of each page.    This permits printing files
  108. which have been pre-formatted.
  109.  
  110. The header is printed justified against the right margin to minimize
  111. interference with the listing.    If the header flag is turned off by
  112. the user, the top margin is still maintained at one-inch.
  113.  
  114. Lines in the print file can be terminated with either '\n' or CRLF.
  115.  
  116. The <escape> character is passed to the printer so that embedded print
  117. control codes can be sent.  (Embed the control characters in a comment
  118. line to placate the assembler or compiler.)
  119.  
  120. If a formfeed is encountered, it is delayed until the end of the
  121. current print line.  Normally formfeeds can only be embedded in
  122. comments for an assembler or a compiler.  This feature keeps the
  123. comment line from being split across the pages.
  124.  
  125. At the start of each file listing, the program displays on the console
  126. the filename and filesize.
  127.  
  128. The program dynamically allocates memory for each file as it lists
  129. that file and frees that memory when the file listing is completed.
  130. It also tries to allocate sufficient memory to read the file in a
  131. single Fread to minimize grind and wear on the floppies.  If there
  132. is not enough free memory to handle the list file in a single buffer,
  133. the program optimizes the block size to minimize the number of disk
  134. accesses required.
  135.  
  136. MODIFICATIONS:
  137. ==============
  138.  
  139. All progam constants and defaults are listed in the MFPRINT.H file.
  140.  
  141. The program uses only five printer controls:  elite and condensed print,
  142. bold-on, bold-off, and formfeed.  The default settings are for an
  143. Epson FX-80 printer.  The printer controls are the first entries in the
  144. .h file.  If your printer controls differ, merely change these settings
  145. and recompile the program. If your printer does not have a specific control,
  146. enter a null string for that setting.  The individual control functons are
  147. only lace-curtain features and are not essential to the multifile listings.
  148.  
  149. The program compiles and links as a stand-alone module.  It was developed
  150. under Megamax C but uses no special features of that implementation.
  151. If you compile under another compiler, note the use of <...> and "..."
  152. in the #include statements in the MFPRINT.C listing.  Your compiler
  153. may use a different convention for accessing its library and user files.
  154.  
  155.  
  156. AGENDA:
  157. =======
  158.  
  159. Convert the program to a print spooler.  As of Dec 17 86, the spooler
  160. works ok as a stand-alone program but I want to incorporate it into
  161. mfprint.acc to take advantage of the dynamic memory allocation.
  162.  
  163. The spooler should spool qued files to a working disk file to minimize the
  164. size requirements of the print buffer and to permit deleting files from
  165. the que.
  166.  
  167. PUBLIC DOMAIN RESTRICTONS:
  168. ==========================
  169.  
  170. MFPRINT is released to the public domain for the use of hobbyists in
  171. any non-commercial application.  It may be freely distributed to other
  172. hobbyists or bulletin boards.
  173.  
  174. Please do not modify and redistribute this program under the name of
  175. MFPRINT.  If you wish to change or to add features, please contact me
  176. at either the address below or on CIS, 70370, 722.  I check into the
  177. Atari Developers' Forem several times each week.
  178.  
  179.